home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / powerd / modules.lha / modules / lib / powerd.m < prev   
Encoding:
Text File  |  2002-06-01  |  7.1 KB  |  189 lines

  1. OPT    LINK='powerd.lib'
  2.  
  3. // String/EString functions ////////////
  4. RPROC DupEStr(a0:PTR TO CHAR)(PTR TO CHAR)
  5. RPROC DupEStrPooled(a0:PTR,a1:PTR TO CHAR)(PTR TO CHAR)
  6. RPROC DupStr(a0:PTR TO CHAR)(PTR TO CHAR)
  7. RPROC DupStrPooled(a0:PTR,a1:PTR TO CHAR)(PTR TO CHAR)
  8. RPROC EStrAdd(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=-1)(PTR TO CHAR)
  9. RPROC EStrCopy(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=-1)(PTR TO CHAR)
  10. RPROC EStringF(a0:PTR TO CHAR,a1:PTR TO CHAR,a2=NIL:LIST OF LONG)(PTR TO CHAR)
  11. RPROC VEStringF(a0:PTR TO CHAR,a1:PTR TO CHAR,a2=NIL:PTR TO LONG)(PTR TO CHAR)
  12. RPROC EStrLen(a0:PTR TO CHAR)(LONG)
  13. RPROC EStrMax(a0:PTR TO CHAR)(LONG)
  14. RPROC InStr(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=0:LONG)(LONG)
  15. RPROC MidEStr(a0:PTR TO CHAR,a1:PTR TO CHAR,d1,d0)(PTR TO CHAR)
  16. //LPROC MidStr(string:PTR TO CHAR,str:PTR TO CHAR,start,length)(PTR TO CHAR)
  17. RPROC HiChar(d0:LONG)(LONG)
  18. RPROC IsAlpha(d0:LONG)(BOOL)
  19. RPROC IsBin(d0:LONG)(BOOL)
  20. RPROC IsHex(d0:LONG)(BOOL)
  21. RPROC IsNum(d0:LONG)(BOOL)
  22. RPROC LoChar(d0:LONG)(LONG)
  23. RPROC LowerStr(a0:PTR TO CHAR)(PTR TO CHAR)
  24. RPROC NewEStr(d0:UWORD)(PTR TO CHAR)
  25. RPROC OStrCmp(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=-1)(LONG)
  26. RPROC OStrCmpNC(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=-1)(LONG)
  27. LPROC ReadEStr(fh:BPTR,estr:PTR TO CHAR)(LONG)
  28. //LPROC ReadStr(fh:BPTR,str:PTR TO CHAR)(LONG)
  29. RPROC ReEStr(a0:PTR TO CHAR)
  30. RPROC RemEStr(a1:PTR TO CHAR)
  31. RPROC RemStr(a1:PTR TO CHAR)
  32. LPROC RightEStr(dstr:PTR TO CHAR,sstr:PTR TO CHAR,length)(PTR TO CHAR)
  33. //LPROC RightStr(dstr:PTR TO CHAR,sstr:PTR TO CHAR,length)(PTR TO CHAR)
  34. RPROC SetEStr(a0:PTR TO CHAR,d0:LONG)
  35. RPROC StrAdd(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=-1)(PTR TO CHAR)
  36. RPROC StrCmp(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=-1)(BOOL)
  37. RPROC StrCmpNC(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=-1)(BOOL)
  38. RPROC StrCopy(a0:PTR TO CHAR,a1:PTR TO CHAR,d0=-1)(PTR TO CHAR)
  39. RPROC StringF(a0:PTR TO CHAR,a1:PTR TO CHAR,a2=NIL:LIST OF LONG)(PTR TO CHAR)
  40. RPROC VStringF(a0:PTR TO CHAR,a1:PTR TO CHAR,a2=NIL:PTR TO LONG)(PTR TO CHAR)
  41. RPROC StrLen(a0:PTR TO CHAR)(LONG)
  42. RPROC TrimStr(a0:PTR TO CHAR)(PTR TO CHAR)
  43. RPROC UpperStr(a0:PTR TO CHAR)(PTR TO CHAR)
  44.  
  45. RPROC WriteF(a0:PTR TO CHAR,a1=NIL:LIST OF LONG)
  46. RPROC VWriteF(a0:PTR TO CHAR,a1=NIL:PTR TO LONG)
  47.  
  48. // added in v0.19alpha7:
  49. LPROC CStrCmp(stra:PTR TO CHAR,strb:PTR TO CHAR)(L)
  50.  
  51. // List functions
  52.  
  53. // Math functions //////////////////////
  54. RPROC Abs(d0:LONG)(LONG)
  55. RPROC And(d0:LONG,d1:LONG)(LONG)='and.l\td1,d0'
  56. RPROC BitCount(d0:LONG)(LONG)
  57. RPROC BitSize(d0:LONG)(LONG)
  58. RPROC EOr(d0:LONG,d1:LONG)(LONG)='eor.l\td1,d0'
  59. RPROC HiBit(d0:LONG)(LONG)
  60. RPROC LoBit(d0:LONG)(LONG)
  61. RPROC Or(d0:LONG,d1:LONG)(LONG)='or.l\td1,d0'
  62. RPROC Neg(d0:LONG)(LONG)='neg.l\td0'
  63. RPROC Not(d0:LONG)(LONG)='not.l\td0'
  64. RPROC Rol(d0:LONG,d1:LONG)(LONG)='rol.l\td1,d0'
  65. RPROC Ror(d0:LONG,d1:LONG)(LONG)='ror.l\td1,d0'
  66. RPROC Shl(d0:LONG,d1:LONG)(LONG)='asl.l\td1,d0'
  67. RPROC Shr(d0:LONG,d1:LONG)(LONG)='asr.l\td1,d0'
  68. RPROC Sign(d0:LONG)(LONG)
  69. RPROC Mod(d0:LONG,d1:LONG)(LONG)='divsl.l\td1,d1:d0\n\texg\td0,d1'
  70. RPROC Div(d0:LONG,d1:LONG)(LONG)='divs.l\td1,d0'
  71. RPROC Mul(d0:LONG,d1:LONG)(LONG)='muls.l\td1,d0'
  72. RPROC Add(d0:LONG,d1:LONG)(LONG)='add.l\td1,d0'
  73. RPROC Sub(d0:LONG,d1:LONG)(LONG)='sub.l\td1,d0'
  74.  
  75. // FPU functions ///////////////////////
  76. RPROC Pow(fp0:DOUBLE,fp1:DOUBLE)(DOUBLE)
  77. RPROC Cos(fp0:DOUBLE)(DOUBLE)='fcos.x\tfp0'
  78. RPROC Sin(fp0:DOUBLE)(DOUBLE)='fsin.x\tfp0'
  79. RPROC Tan(fp0:DOUBLE)(DOUBLE)='ftan.x\tfp0'
  80. RPROC Cosh(fp0:DOUBLE)(DOUBLE)='fcosh.x\tfp0'
  81. RPROC Sinh(fp0:DOUBLE)(DOUBLE)='fsinh.x\tfp0'
  82. RPROC Tanh(fp0:DOUBLE)(DOUBLE)='ftanh.x\tfp0'
  83. RPROC ACos(fp0:DOUBLE)(DOUBLE)='facos.x\tfp0'
  84. RPROC ASin(fp0:DOUBLE)(DOUBLE)='fasin.x\tfp0'
  85. RPROC ATan(fp0:DOUBLE)(DOUBLE)='fatan.x\tfp0'
  86. RPROC FAbs(fp0:DOUBLE)(DOUBLE)='fabs.x\tfp0'
  87. RPROC Sqrt(fp0:DOUBLE)(DOUBLE)='fsqrt.x\tfp0'
  88. RPROC ATanh(fp0:DOUBLE)(DOUBLE)='fatanh.x\tfp0'
  89. RPROC Log(fp0:DOUBLE)(DOUBLE)='flog10.x\tfp0'
  90. RPROC Ln(fp0:DOUBLE)(DOUBLE)='flogn.x\tfp0'
  91. RPROC Log2(fp0:DOUBLE)(DOUBLE)='flog2.x\tfp0'
  92. RPROC Int(fp0:DOUBLE)(DOUBLE)='fintrz.x\tfp0'
  93. //RPROC Rem(fp0:DOUBLE)(DOUBLE)='frem.x\tfp0,fp0'
  94. RPROC Exp(fp0:DOUBLE)(DOUBLE)='fetox.x\tfp0'
  95. RPROC FNeg(fp0:DOUBLE)(DOUBLE)='fneg.x\tfp0'
  96. RPROC F2I(fp0:D)(L)
  97.  
  98. // Intuition support functions /////////
  99. RPROC Mouse()(LONG)
  100. RPROC MouseX(a0:PTR TO Window)(LONG)
  101. RPROC MouseXY(a0:PTR TO Window)(LONG,LONG)
  102. RPROC MouseY(a0:PTR TO Window)(LONG)
  103. RPROC WaitIMessage(a0:PTR TO Window)(LONG,LONG,LONG,LONG)
  104.  
  105. // Miscellaneous functions /////////////
  106. RPROC CtrlC()(BOOL)
  107. RPROC CtrlD()(BOOL)
  108. RPROC CtrlE()(BOOL)
  109. RPROC CtrlF()(BOOL)
  110.  
  111. RPROC Byte(a0:PTR TO BYTE)(LONG)='move.b\t(a0),d0\n\textb.l\td0'
  112. RPROC Word(a0:PTR TO WORD)(LONG)='move.w\t(a0),d0\n\text.l\td0'
  113. RPROC Long(a0:PTR TO LONG)(LONG)='move.l\t(a0),d0'
  114. RPROC UByte(a0:PTR TO BYTE)(LONG)='move.b\t(a0),d0\n\tandi.l\t#$ff,d0'
  115. RPROC UWord(a0:PTR TO WORD)(LONG)='move.w\t(a0),d0\n\tandi.l\t#$ffff,d0'
  116. RPROC ULong(a0:PTR TO LONG)(LONG)='move.l\t(a0),d0'
  117. RPROC Float(a0:PTR TO FLOAT)(FLOAT)='fmove.s\t(a0),fp0'
  118. RPROC Double(a0:PTR TO DOUBLE)(DOUBLE)='fmove.d\t(a0),fp0'
  119.  
  120. RPROC PutByte(a0:PTR TO BYTE,d0:LONG)='move.b\td0,(a0)'
  121. RPROC PutWord(a0:PTR TO WORD,d0:LONG)='move.w\td0,(a0)'
  122. RPROC PutLong(a0:PTR TO LONG,d0:LONG)='move.l\td0,(a0)'
  123. RPROC PutFloat(a0:PTR TO FLOAT,fp0:FLOAT)='fmove.s\tfp0,(a0)'
  124. RPROC PutDouble(a0:PTR TO DOUBLE,fp0:DOUBLE)='fmove.d\tfp0,(a0)'
  125.  
  126. RPROC ReByte(d0:BYTE)(LONG)='extb.l\td0'
  127. RPROC ReWord(d0:WORD)(LONG)='ext.l\td0'
  128. RPROC ReUByte(d0:UBYTE)(LONG)='andi.l\t#$ff,d0'
  129. RPROC ReUWord(d0:UWORD)(LONG)='andi.l\t#$ffff,d0'
  130.  
  131. RPROC Bounds(d0:LONG,d1:LONG,d2:LONG)(LONG)
  132. RPROC InBounds(d0:LONG,d1:LONG,d2:LONG)(BOOL)
  133. RPROC Even(d0:LONG)(BOOL)
  134. RPROC Odd(d0:LONG)(BOOL)
  135. RPROC Max(d0:LONG,d1:LONG)(LONG)
  136. RPROC Min(d0:LONG,d1:LONG)(LONG)
  137.  
  138. RPROC Rnd(d0:LONG)(LONG)
  139. RPROC RndQ(d0:LONG)(LONG)
  140.  
  141. EPROC FileLength(name:PTR TO CHAR)(LONG)
  142. RPROC KickVersion(d0:LONG)(BOOL)
  143.  
  144. RPROC Inp(d1:BPTR)(LONG)
  145. RPROC Out(d1:BPTR,d2:LONG)
  146.  
  147. EPROC RealStr(str:PTR TO UBYTE,f:DOUBLE,n=1)(PTR TO UBYTE)
  148. EPROC RealEStr(estr:PTR TO UBYTE,f:DOUBLE,n=1)(PTR TO UBYTE)
  149. EPROC RealVal(str:PTR TO UBYTE,pos=0)(DOUBLE,LONG)
  150. EPROC Val(s:PTR TO UBYTE,n=0)(LONG,LONG)
  151.  
  152. RPROC AllocVecPooled(a0:APTR,d0:LONG)(PTR)
  153. RPROC FreeVecPooled(a0:APTR,a1:PTR)
  154. RPROC SizePooled(a0:PTR)(LONG)='move.l\t(-4,a0),d0'
  155.  
  156. EPROC New(length)(PTR)
  157. EPROC NewR(length)(PTR)
  158. EPROC NewM(length,flags)(PTR)
  159. EPROC Dispose(memptr)
  160.  
  161. RPROC Raise(d0=NIL:LONG,d1=NIL:LONG)
  162. EDEF    exception,exceptioninfo
  163.  
  164. EPROC OpenW(l,t,w,h,i,f,n=NIL,s=NIL,st=1,g=NIL,tags=NIL:PTR TO TagItem)(PTR TO Window)
  165. EDEF    stdrast
  166. EPROC OpenS(w,h,d,t=0,n=NIL,tags=NIL:PTR TO TagItem)(PTR TO Screen)
  167. RPROC CloseW(a0:PTR TO Window)
  168. RPROC CloseS(a0:PTR TO Screen)
  169. RPROC SetColour(a0:PTR TO RastPort,d0,d1,d2,d3)
  170.  
  171. RPROC SetStdRast(d1:PTR TO RastPort)(PTR TO RastPort)
  172. RPROC Colour(d0,d1=0)
  173. RPROC Line(d0,d1,d2,d3,d4=-1)
  174. RPROC Plot(d0,d1,d2=-1)
  175. RPROC Box(d0,d1,d2,d3,d4=-1)
  176. RPROC Ellipse(d0,d1,d2,d3,d4=-1)
  177. RPROC Circle(d0,d1,d2,d3=-1)
  178. /*
  179. RPROC IBox(x,y,w,h,c=-1)
  180. RPROC TextF(x,y,fmt,args)
  181. */
  182.  
  183. // Quoted Expression functions /////////
  184. RPROC Eval(a0:PTR)(L)
  185. RPROC MapList(a0:PTR TO LONG,a1:PTR TO LONG,a2:PTR TO LONG,d0:LONG,a3:PTR TO LONG)
  186. RPROC ForAll(a0:PTR TO LONG,a1:PTR TO LONG,d0:LONG,a2:PTR TO LONG)(L)
  187. RPROC Exists(a0:PTR TO LONG,a1:PTR TO LONG,d0:LONG,a2:PTR TO LONG)(L)
  188. RPROC SelectList(a0:PTR TO LONG,a1:PTR TO LONG,a2:PTR TO LONG,d0:LONG,a3:PTR TO LONG)(L)
  189.